package com.suray.wcs.service.pojo;

import com.suray.basic.wcs.path.core.Node;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 手动提升机显示类
 *
 * @author zhr
 */
@Data
public class HandHoist {
    //任务编号
    private Integer taskNo;

    private String liftWord;

    //提升机当前层
    private String hoistLay;

    private Integer curFloor;
    //就绪状态
    private String readyState;
    //到位状态
    private String inState;
    //是否有车
    private String haveCar;
    //控制模式
    private String controllerMode;
    //运行状态
    private String runningState;
    //是否有货
    private String haveCargo;
    //货物到位
    private String cargoIn;
    //制退器状态
    private String lockStatus;
    //WCS锁定状态
    private String wcsLockStatus;
    //是否急停
    private String scram;
    //链条机状态
    private String engineState;
    //任务完成编号
    private Integer completeTaskNo;
    //错误状态
    private List<String> errorState;
    //心跳
    private Integer checkNo;
    //本地远程
    private String localRemote;
    //信息
    private List<HoistHandleBean> loInfo = new ArrayList<HoistHandleBean>();
    //设备位置
    private String deviceLocation;
    private Node deviceLocationNode;
    //设备编号
    private String hoistNo;

    //用于显示自卸式提升机当是两向车层还是四向车层
    private String hoistStatueLayer;

    //提升机内有无两向车
    private String twoDirectionRgv;

    //提升机内有无四向车
    private String hasRgv;

    //设备名称
    private String hoistName;

    private String hoistType;

    /**货叉式提升机**/
    //提升机当前位移量
    private int curLifterDis;

    //提升机条码值, 预留，目前没有启用
    private String lifterGroundCode;

    //两向车当前位移量
    private int curCarDis;

    //两向车当前条码值
    private String curCarGroundCode;

    //两向车当前位置
    private String curCarLocation;

    //两向车升降当前位移量
    private int curCarPalletDis;

    //提升机当前状态
    private String lifterStatus;

    //提升机托盘状态
    private String palletStatus;

    //四向车平台左光电
    private String fourCarLeftSig;

    //四向车平台右光电
    private String fourCarRightSig;

    //平台检测四向车光电
    private String hasFourCarSig;

    //平台检测两向车光电
    private String hasTwoCarSig;

    //平台上限位开关
    private String upLimit;

    //平台下限位开关
    private String downLimit;

    //1轴使能状态
    private String zhouEnable1;

    //2轴使能状态
    private String zhouEnable2;

    //3轴使能状态
    private String zhouEnable3;

    //4轴使能状态
    private String zhouEnable4;

    private  String lifterEnable;

    //1轴报错状态
    private String zhouError1;

    //2轴报错状态
    private String zhouError2;

    //3轴报错状态
    private String zhouError3;

    //4轴报错状态
    private String zhouError4;

    //两向车平台左光电
    private String twoCarLeftSig;

    //两向车平台右光电
    private String twoCarRightSig;

    //两向车行驶轴使能状态
    private String twoCarDriveEnable;

    //两向车行驶轴报错状态
    private String twoCarDriveError;

    //两向车升降轴使能状态
    private String twoCarPalletEnable;

    //两向车升降轴报错状态
    private String twoCarPalletError;

    private String carEnable;


    //1方向检测四向车光电信号
    private String direction1CarSig;

    //3方向检测四向车光电信号
    private String direction3CarSig;

    //1方向检测托盘光电信号
    private String direction1PalletSig;

    //3方向检测托盘光电信号
    private String direction3PalletSig;

    //4#1方向托盘光电
    private String dir1PalletSig;

    //4#3方向托盘光电
    private String dir3PalletSig;
    //2#托盘光电
    private String dir2PalletSig;

    //凸轮光电信号1
    private String camSig1;

    //凸轮光电信号2
    private String camSig2;

    //凸轮限位开关信号
    private String camLimit;

    //行驶接触器
    private String driveContact;

    //升降接触器
    private String upDownContact;

    //5V电源
    private String power5;

    //行驶刹车
    private String driveBrake;

    //电器盒加热
    private String plcHeat;

    //两向车行驶中
    private String twoCarDriving;

    //两向车托盘顶升中
    private String twoCarUping;

    //两向车托盘下降中
    private String twoCarDowning;

    //两向车托盘顶升到位
    private boolean twoCarUpOk;

    //两向车托盘下降到位
    private boolean twoCarDownOk;

    //Wcs可下发任务
    private String canDoTask;

    //提升机运行中
    private Integer lifterRunning;

    //任务执行中
    private String taskDes;

    //调试模式
    private String debugMode;

    //提升机锁定
    private boolean lifterLock;
    //总到位
    private String arrived;
    //提升机到位
    private String lifterArrived;

    //两向车到位
    private String carArrived;

    //故障代码
    private int errorCode;
    //故障代码
    private String errorCodeInfo;

    //警告代码
    private int warnCode;

    /**
     * 任务完成ID号
     */
    private int finishTaskId;

    //提升机当前层
    private int currentLayer;
    //当前层类型
    private String lifterLayerType;

    //当前执行任务
    private int taskingId;

    //当前执行指令编号
    private int taskingCmdNo;

    //指令完成编号
    private int finishCmdNo;

    //生命
    private int life;

    //提升机层数
    private Integer lifterFloor;
    //托盘升位移量
    private Integer palletUpDis;
    //托盘降位移量
    private Integer palletDownDis;
    private Integer carInLifterDis;
    //各层提升机与两向车的位移量
    private Integer[] twoCarLayerDis;   //两向车层位移量
    private Integer[] fourCarLayerDis;  //四向车层位移量
    private Integer[] leftLocationDis;  //左深位位移量
    private Integer[] rightLocationDis; //右深位位移量

    private String taskProcess;
    /**
     * 当前WCS任务号
     */
    private Integer wcsTaskId;

    public HandHoist() {
    }

}
